package algo3c3g3.model;

import algo3c3g3.model.action.*;

/**
 * Genera niveles de prueba.
 */
public abstract class TestLevelFactory
{
    public static Level newTestLevel1()
    {
        World world = new World(new Coord(2, 5), new Coord(18, 5), new TestMaps.TestWalkerMap());
        
        ActionsAvailable actions = new ActionsAvailable();
        
        actions.addAction(Basher.class, 2);
        actions.addAction(Floater.class, 1);
        actions.addAction(Digger.class, 4);
        
        Level level = new Level(10,
                                5,
                                60,
                                120,
                                world,
                                actions);
        
        return level;
    }
    
    
    public static Level newTestLevel2()
    {
        World world = new World(new Coord(2, 5), new Coord(18, 5), new TestMaps.TestBasherMap());
        
        ActionsAvailable actions = new ActionsAvailable();
        
        actions.addAction(Basher.class, 10);
        actions.addAction(Digger.class, 4);
        actions.addAction(Blocker.class, 4);
        actions.addAction(Builder.class, 4);
        
        Level level = new Level(10,
                                5,
                                0,
                                120,
                                world,
                                actions);
        
        return level;
    }
    
    public static Level newTestLevel3()
    {
        World world = new World(new Coord(2, 5), new Coord(45, 23), new TestMaps.TestMap());
        
        ActionsAvailable actions = new ActionsAvailable();
        
        actions.addAction(Basher.class, 10);
        actions.addAction(Digger.class, 4);
        actions.addAction(Blocker.class, 4);
        actions.addAction(Builder.class, 4);
        actions.addAction(Floater.class, 5);
        actions.addAction(Teleporter.class, 5);
        
        Level level = new Level(10,
                                5,
                                0,
                                120,
                                world,
                                actions);
        
        return level;
    }
}
